<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script src="./JS/core.js"></script>
    <script>
        // 测试用例
        function f1(a, b, c) {
            console.log('我是函数f1传入的参数有', a, b, c);
        }

        function f2(a, b,) {
            console.log('我是函数f2传入的参数有', a, b);
        }

        function f3(a) {
            console.log('我是函数f3传入的参数有', a);
        }

        function f4() {
            console.log('我是函数f4，没有传入的参数');
        }

        let em = new EventManager();
        em.on('test1', f1).once('test2', f2).on('test3', f3).once('test4', f4).on('test2', f2); // 绑定事件与函数
        em.trigger('test1', 10, 20, 30).trigger("test2", 100, 200).trigger("test4", 100, 200).trigger('test2'); // 触发事件函数

        em.on('test1', f1).on('test1', f2).on('test1', f3).trigger('test1', 99); // 检测是否拥有去重功能和是否会触发多层队列

        em.delete("test1").status() // 测试delete方法

        em.clear().status(); // 测试clear方法

        function f5() {
            console.log('特殊的函数，试试在我的内部解绑某个函数');
            em.remove('test', f2);
        }
        em.on('test', f1).on('test', f5).on('test', f2).on('test', f3).trigger('test', 88).status();//支持在监听器函数中删除未执行的某个事件
    </script>
</body>

</html>